package com.yh.mybatis.session;

public interface SqlSession {

    /**
     * 根据sqlId获取一条记录的封装对象
     *
     * @param statement 陈述
     * @return {@link T}
     */
    <T> T selectOne(String statement);

    /**
     * 根据sqlId获取一条记录的封装对象  可传入参数
     *
     * @param statement 陈述
     * @param parameter 参数
     * @return {@link T}
     */
    <T> T selectOne(String statement, Object parameter);



    /**
     * 获取配置
     *
     * @return {@link Configuration}
     */
    Configuration getConfiguration();

    /**
     * 得到映射器，这个巧妙的使用了泛型，使得类型安全
     *
     * @param type 类型
     * @return {@link T}
     */
    <T> T getMapper(Class<T> type);

}
